package com.runjian.rundo.iot.agent.common.network.core;

import java.util.function.Consumer;

import io.netty.util.concurrent.Future;

/**
 * 网络组件接口类
 *
 * @author CaoQingHua
 */
public interface NetworkClient<T> {

    /**
     * 连接成功后,调用异步事件涵数,没用调用就意味着未清空属性
     *
     * @param callbacks 回调方法
     * @return 返回处理程序
     */
    Future<Void> connection(Consumer<Boolean>... callbacks);

    /**
     * 停止网络组件
     */
    void stop();

    /**
     * 获取网络连接状态
     *
     * @return true:已连接,false:未连接
     */
    default Boolean status() {
        return Boolean.FALSE;
    }

}
